1
확장성과 가독성을 고려한 코드 설계
AI034Lesson 7
00:00

코드베이스가 수백 줄을 넘어서면, 단순한 스크립트에서 시스템으로 변합니다. 인지적 과부하를 방지하기 위해, Rust는 계층적인 모듈 시스템 기능을 논리적이고 관리 가능한 경계로 나누는 데 사용합니다.

1. 확장성의 필수성

거대한 시스템에서는 전체 아키텍처를 머릿속에 담아야 할 필요가 없습니다. 모듈을 통해 구현 세부 사항을 격리하고, 공개된 API를 통해 필요한 것만 노출할 수 있습니다.

패키지: 식당크레이트 루트src/lib.rs (라이브러리)크레이트 루트src/main.rs (바이너리)

2. 이중 크레이트 아키텍처

단일의 Rust 패키지 는 컨테이너 역할을 합니다. 라이브러리 크레이트 (src/lib.rs)는 핵심 로직을 위한 것이고, 바이너리 크레이트 (src/main.rs)는 실행 파일의 진입점입니다. 이를 통해 무엇을 시스템이 하는 일과 사용자가 어떻게 상호작용하는지를 명확히 분리합니다.

3. 조직 기반

다음과 같이 초기화함으로써 cargo new --lib모듈성을 우선시하게 됩니다. 식당 운영 시스템에서는 '프론트 오브 하우스' (접대)와 '백 오브 하우스' (조리)가 분리되어 있으며, 다양한 프론트엔드(클라이언트, 웹, 모바일)가 동일한 핵심 라이브러리 로직을 공유할 수 있게 됩니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>